/**
 * 过滤页面显示的列集合
 * @param {*} customColumns 页面自定义列字段
 * @param {*} interfaceColumns 接口返回的列集合
 * @param {*} hasSerialNo 是否包含序号
 */
const filterVisibleColumns = (customColumns, interfaceColumns, hasSerialNo) => {
    let columns = [];

    if (hasSerialNo) columns.push(customColumns[0]);

    //接口列和自定义列一致，则保留自定义列字段
    if (interfaceColumns != null) {
        for (let iCol of interfaceColumns) {
            let finded = false;
            for (let cCol of customColumns) {
                if (iCol.code == cCol.dataIndex) {
                    columns.push(cCol);
                    finded = true;
                }
            }
            //接口列不在自定义列中，则添加到自定义列集合
            if (!finded)
                columns.push({
                    title: iCol.name,
                    align: "left",
                    dataIndex: iCol.code,
                    scopedSlots: { customRender: iCol.code },
                });
        }
    }

    //追加操作列
    columns.push(customColumns[customColumns.length - 1]);

    return columns;
};

export default { filterVisibleColumns };
